//
//  PSScore.h
//  PrefCore
//
//  Created by Sergey on 2/28/14.
//  Copyright (c) 2014 Play-on-smart. All rights reserved.
//

#import <Foundation/Foundation.h>

typedef int64_t PSScoreValue;

@interface PSScoreValues : NSObject

@property (nonatomic, readonly) BOOL isChanged;

@property (nonatomic, readonly) PSScoreValue current;

@property (nonatomic, readonly) NSArray *history;

-(void) reset;

-(void) settle;

-(void) addValue:(PSScoreValue)value;

@end

@interface PSClosableValues : PSScoreValues

@property (nonatomic, readwrite) PSScoreValue delta;

@property (nonatomic, readonly) PSScoreValue eventual;

-(void) reset;

@end

@interface PSScoreBalance : NSObject

@property (nonatomic, readwrite) PSScoreValue current;

@property (nonatomic, readwrite) PSScoreValue delta;

-(void) reset;

@end

@interface PSScorePool : PSScoreValues

@end

@interface PSScore : NSObject

@property (nonatomic, readonly) PSScoreBalance *balance;

@property (nonatomic, readonly) PSClosableValues *mountain;

@property (nonatomic, readonly) PSScorePool *pool;

@property (nonatomic, readonly) PSClosableValues * __strong * whists;

-(void) settle;

-(void) reset;

-(NSString*) description;

@end
